package B_java编译器的新特性.参数名字;

import java.lang.reflect.Method;
import java.lang.reflect.Parameter;

/**
 * Created by zc on 2017/3/10. 并未完全理解  并未尝试用 -parameters 来编译这个类
 * 很长一段时间里，Java程序员一直在发明不同的方式使得方法参数的名字能保留在Java字节码中，
 *      并且能够在运行时获取它们（比如，Paranamer类库）。
 * 最终，在Java 8中把这个强烈要求的功能添加到语言层面（通过反射API与Parameter.getName()方法）
 *      与字节码文件（通过新版的javac的–parameters选项）中。
 */
public class ParameterNames {
    public static void main(String[] args) throws NoSuchMethodException {
        Method method = ParameterNames.class.getMethod("main", String[].class);
        for (final Parameter parameter : method.getParameters()) {
            System.out.println(parameter.getName());
        }
    }

    public String getStr(Integer integer) {
        return integer + "_param";
    }
}
